The present invention relates generally to generating computer images of embroidered stitching, and more particularly image rendering of embroidered images using parametric texture mapping.
Embroidery is the art of applying decorative threaded designs to fabric or textiles. In machine embroidery, embroidery designs are stitched with an automated embroidery machine. These designs are digitized into a sequence of embroidery primitives with embroidery software, and then converted to individual stitches using a stitch engine. Methods, systems, and techniques for computer-assisted embroidery are described in U.S. Pat. No. 6,836,695 to Goldman, U.S. Pat. No. 7,016,756 to Goldman, U.S. Pat. No. 6,947,808 to Goldman, U.S. Pat. No. 7,016,757 to Goldman, U.S. Pat. No. 7,587,256 to Goldman, U.S. Pat. No. 6,804,573 to Goldman, U.S. Pat. No. 6,397,120 to Goldman, U.S. Patent Application Publication No. US 2010-0191364 A1 to Goldman, U.S. Patent Application Publication No. US 2007-0118245 A1 to Goldman et al., U.S. Patent Application Publication No. US 2010-0017011 A1 to Goldman et al., U.S. Patent Application Publication No. US 2008-0079727 A1 to Goldman et al., each of which is incorporated by reference herein for all that they teach.
Embroidered products may be viewed and purchased at various websites accessible through the Internet. In order to ensure customer satisfaction with their received embroidered product, and in particular to ensure that what the customer receives is how it looked when the customer viewed it at order time, it is desirable to present a realistic preview image of the physical embroidery on the customer's computer display. In many instances, the vendor of the embroidered products does not embroider a product before the product is ordered. In these instances, there may not be an image available (e.g., a picture image of the actual embroidered product) to present to the user. It may therefore be desirable to generate a realistic rendering of an embroidered product in software that accurately represents what the embroidery will look like when manufactured.
Most computerized embroidery systems provide some sort of previewing system. The simplest methods draw each stitch with a simple colored line. More sophisticated systems may model a stitch and color it using one of several common shading algorithms to simulate depth and lighting by depicting differing levels of darkness.
One realization of this model-and-color approach is described in U.S. Patent Application Publication US2010/0106283 A1 (hereinafter referred to as the “283 Publication”), which is incorporated by reference herein for all that it teaches. The '283 Publication describes an embroidery system and method in which a consumer can provide a design, such as images or text, have it converted into a digitized image and then used to generate customized embroidery that can be placed onto a product. The '283 Publication also describes an embroidery simulation that shows the translated embroidery design using the embroidered textures and colors placed by an artisan. The embroidery simulation demonstrates to the user how the embroidery machine might execute the stitch instructions implicit in an embroidery design, and displays the simulated image of the design to the user. The embroidery simulation algorithm described in the '283 Publication utilizes a set of Normal Maps that contain geometric information about the object, in this case a thread stitch. To render these Normal Maps, a simple shading model appears to be used, such as a Phong shading model which models surface reflection of light based on a combination of diffuse reflection of rough surfaces with the specular reflection of shiny surfaces and factoring in the ambient light to account for light scatter.
The embroidery simulation described in the '283 Publication is an embodiment of a traditional model-and-color rendering technique which colors a three-dimensional model of an object according to its material properties and lighting. To render embroidery using this approach, it is necessary to model the geometry of thread down to the twist level. However, the achievable realism using this approach is limited for a variety of reasons.
First, the geometrical accuracy of the '283 Publication approach is limited in that while it is relatively easy to model the individual twists in a piece of thread, it is much more difficult to account for the fact that each twist is made up of many smaller fibers with random feathering. Modeling a thread as solid twists is conceptually as inaccurate as modeling a piece of cloth as a perfectly flat sheet of plastic.
Second, even if provided with accurate geometry at the microscopic level, there are many practical limitations to how precisely the interaction of light can be simulated. In the model-and-color approach, the model is colored using a shading algorithm. Most shading models do not account for effects such as subsurface scattering and global illumination, both of which are visible in photographs of embroidery. The computational complexity of these techniques makes them impractical for interactive scenarios. The model-and-color approach may take several hours to generate a single frame. While such latency may be suited for generating computer graphics used in film-making, such latency would be unacceptable in an application for real-time rendering on a website.
One way to circumvent the aforementioned issues is to employ a data-driven approach. In such an approach, individual stitches of all conceivable lengths, colors, rotations, lighting positions, etc. are photographed and the images stored in a large database. To produce an embroidery image, the appropriate images are selected from the database and composited together as if making a collage. Since each stitch in the image is taken from an actual photograph, all the subtleties of lighting are pasted directly into the output image without any need for mathematical modeling or simulation. Such an approach follows some more recent trends in computer graphics which leverage the increasing ubiquity of high-quality capture devices (e.g., digital cameras and scanners) and the exponential growth of memory and storage on modern computers. While this might be a nice idea in theory, it is obviously impractical to capture and store every conceivable permutation of length, color, rotation, lighting position, etc.
It would therefore be desirable to have a technique for automatically rendering a more realistic image of an embroidered design without the traditional rendering latency.